FROM mysql:latest

# 设置 MySQL 配置文件
COPY banke/mysql.cnf /etc/mysql/my.cnf

# 创建 MySQL 数据目录（如果不存在）
RUN mkdir -p /var/lib/mysql \
    && chown -R mysql:mysql /var/lib/mysql

# 创建 secure-file-priv 目录
RUN mkdir -p /var/lib/mysql-files \
    && chown -R mysql:mysql /var/lib/mysql-files

# 复制 SQL 初始化文件到 MySQL 容器的初始化目录
COPY banke/db/expressage.sql /docker-entrypoint-initdb.d/

VOLUME ["/var/lib/mysql"]

EXPOSE 3306

CMD ["mysqld"]

# 构建 Go 应用程序
FROM golang:latest AS builder

# 设置工作目录
WORKDIR /app

# 复制 Go 模块文件并下载依赖
COPY go.mod go.sum ./
RUN go mod download

# 复制源代码
COPY . .

# 编译 Go 应用程序
RUN go build -o app ./main.go

# 创建最终镜像
FROM nginx:latest

# 复制编译好的 Go 应用程序
COPY --from=builder /app/app /usr/local/bin/app

# 复制 Nginx 配置文件
COPY nginx.conf /etc/nginx/nginx.conf

# 复制 SSL 证书和密钥
COPY ssl/certs/kdjl.asia.pem /etc/ssl/certs/kdjl.asia.pem
COPY ssl/private/kdjl.asia.key /etc/ssl/private/kdjl.asia.key

# 暴露端口
EXPOSE 3000

# 启动 Nginx 和 Go 应用程序
CMD ["sh", "-c", "app & nginx -g 'daemon off;'"]


